Obsidian DataView 元数据
在 0.0 Obsidian 介绍 中,每篇笔记除了正文之外,还有元数据(metadata),元数据中包含笔记的基本属性,比如创建时间、路径目录等,也允许用户通过 Front Matter
语法自定义。常用的元数据比如 tags
(标签)、aliases
(别名)。DataView 则支持检索这些元数据,并通过语句进行查询操作。
在本文中,将总结 Dataview 在元数据检索上的知识与技巧。本文重点参考了两篇优秀文章,一是官方文档[1] ,二是 qileq 的数字花园[2] 。
DataView 检索范围
Dataview 只能检索笔记的元数据(metadata)。具体来说,包括:
- 隐式字段(由 DataView 自动向笔记中添加的索引数据)
- 笔记元数据
- 笔记中的所有任务
- 笔记中的所有列表
Note
笔记中的所有任务、列表比较特殊,它们严格来说不算元数据,但是它们非常有用,尤其是任务。后续章节中将介绍,DataView 还有专门针对任务的隐式字段,这为用 Obsidian 进行任务管理提供了创意空间。
隐式字段(Implicit fields)
即使我们没有向笔记中手动加入元数据,DataView 也会自动向笔记中添加一些索引数据。隐式字段分为两类,一类是针对笔记的,第二类是专门针对任务和列表的。
笔记隐式字段
元信息 | 说明 | 备注 |
---|---|---|
file.name | 文件名 | |
file.folder | 文件所在目录 | |
file.path | 文件路径 | |
file.ext | 文件扩展名 | |
file.link | 文件链接 | |
file.size | 文件大小 | |
file.ctime | 文件创建时间 | 日期+时间 |
file.cday | 文件创建日期 | 日期 |
file.mtime | 文件修改时间 | 日期+时间 |
file.mday | 文件修改日期 | 日期 |
file.tags | 文件标签 | 区别见[2:2] |
file.etags | 文件标签 | |
file.inlinks | 所有指向该文件的文件 | 入链 |
file.outlinks | 所有该文件指向的文件 | 出链 |
file.aliases | 别名 | |
file.tasks | 文件中所有的任务项 | - [ ] 和 -[x] |
file.lists | 文件中所有的列表 | 包含任务列表 |
file.frontmatter | Front Matter 所有信息 | |
file.day | 如果文件名中包含日期通过此字段获取 | |
file.starred | 是否标星 |
任务、列表隐式字段
任务列表,就是我们根据 Markdown 语法,以 - [ ]
插入的列表。不要小看它,DataView 可谓是对它下足了功夫。
比如,支持对列表项添加元数据:
- [ ] Hello, this is some [metadata:: value]!
- [X] I finished this on [completion:: 2021-08-15].
这还不够,为了更方便地在任务中添加元数据,还支持通过 Emoji 快速添加元数据:
- Due this Saturday 🗓️2021-08-29
- [x] Completed last Saturday ✅2021-08-22
- [ ] I made this on ➕1990-06-14
- [ ] Task I can start this weekend 🛫2021-08-29
- [x] Task I finished ahead of schedule ⏳2021-08-29 ✅2021-08-22
当然,Emoji 不是乱加的,有约定:
功能 | Emoji 格式 |
---|---|
截止时间(due) | 🗓️YYYY-MM-DD |
完成时间(completion) | ✅YYYY-MM-DD |
创建时间(created) | ➕YYYY-MM-DD |
开始时间(start) | 🛫YYYY-MM-DD |
计划开始(scheduled) | ⏳YYYY-MM-DD |
如何检索呢?举例来说,查询在某天完成的任务:
TASK
WHERE completion = date("2021-08-22")
网络资源
本文作者:Maeiee
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!